home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-07 | 15.6 KB | 558 lines | [TEXT/MPS ] |
- ;
- ; File: MoviesFormat.a
- ;
- ; Contains: QuickTime interfaces
- ;
- ; Version:
- ;
- ; DRI: Jim Batson
- ;
- ; Copyright: © 1984-1994 by Apple Computer, Inc.
- ; All rights reserved.
- ;
- ; Warning: *** APPLE INTERNAL USE ONLY ***
- ; This file may contain unreleased API's
- ;
- ; BuildInfo: Built by: QuickTime
- ; With Interfacer: 1.1d11
- ; From: MoviesFormat.i
- ; Revision: 0
- ; Dated: 08/07/95
- ; Last change by: JB
- ; Last comment: This is a fake header used so interfacer is happy.
- ;
- ; Bugs: Report bugs to Radar component “System Interfaces”, “Latest”
- ; List the version information (from above) in the Problem Description.
- ;
- ;
-
- IF &TYPE('__MOVIESFORMAT__') = 'UNDEFINED' THEN
- __MOVIESFORMAT__ SET 1
-
-
- IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
- include 'Types.a'
- ENDIF
- ; include 'ConditionalMacros.a' ;
-
- IF &TYPE('__WINDOWS__') = 'UNDEFINED' THEN
- include 'Windows.a'
- ENDIF
- ; include 'Memory.a' ;
- ; include 'MixedMode.a' ;
- ; include 'Quickdraw.a' ;
- ; include 'QuickdrawText.a' ;
- ; include 'Events.a' ;
- ; include 'OSUtils.a' ;
- ; include 'Controls.a' ;
- ; include 'Menus.a' ;
-
- IF &TYPE('__IMAGECOMPRESSION__') = 'UNDEFINED' THEN
- include 'ImageCompression.a'
- ENDIF
- ; include 'QDOffscreen.a' ;
- ; include 'Errors.a' ;
- ; include 'Components.a' ;
- ; include 'StandardFile.a' ;
- ; include 'Dialogs.a' ;
- ; include 'TextEdit.a' ;
- ; include 'Files.a' ;
-
- IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
- include 'Movies.a'
- ENDIF
- ; include 'Aliases.a' ;
- ; include 'AppleTalk.a' ;
-
- kMovieVersion EQU 0 ; version number of the format here described
-
- MoviesUserData RECORD 0
- size ds.l 1 ; size of this user data
- udType ds.l 1 ; type of user data
- data ds.b 1 ; the user data
- sizeof EQU *
- ENDR
-
- ; typedef struct MoviesUserData MoviesUserData
- UserDataAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- userData ds MoviesUserData
- sizeof EQU *
- ENDR
-
- ; typedef struct UserDataAtom UserDataAtom
- ;***************************************
- ;*
- ;* MediaDirectory information -
- ;* The MediaDirectory is tightly coupled to the data.
- ;*
- ;***************************************
- SampleDescriptionAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stsd'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- sampleDescTable ds SampleDescription
- sizeof EQU *
- ENDR
-
- ; typedef struct SampleDescriptionAtom SampleDescriptionAtom
- ; TimeToSampleNum maps physical sample time to physical sample number.
- TimeToSampleNum RECORD 0
- sampleCount ds.l 1
- sampleDuration ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct TimeToSampleNum TimeToSampleNum
- TimeToSampleNumAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stts'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- timeToSampleNumTable ds TimeToSampleNum
- sizeof EQU *
- ENDR
-
- ; typedef struct TimeToSampleNumAtom TimeToSampleNumAtom
- ; SyncSamples is a list of the physical samples which are self contained.
- SyncSampleAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stss'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- syncSampleTable ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct SyncSampleAtom SyncSampleAtom
- ; SampleToChunk maps physical sample number to chunk number.
- ; same as SampleToChunk, but redundant first sample is removed
- SampleToChunk RECORD 0
- firstChunk ds.l 1
- samplesPerChunk ds.l 1
- sampleDescriptionID ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct SampleToChunk SampleToChunk
- SampleToChunkAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stsc'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- sampleToChunkTable ds SampleToChunk
- sizeof EQU *
- ENDR
-
- ; typedef struct SampleToChunkAtom SampleToChunkAtom
- ChunkOffsetAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stco'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- chunkOffsetTable ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct ChunkOffsetAtom ChunkOffsetAtom
- SampleSizeAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stsz'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- sampleSize ds.l 1
- numEntries ds.l 1
- sampleSizeTable ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct SampleSizeAtom SampleSizeAtom
- ShadowSync RECORD 0
- fdSampleNum ds.l 1
- syncSampleNum ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct ShadowSync ShadowSync
- ShadowSyncAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stsz'
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- shadowSyncTable ds ShadowSync
- sizeof EQU *
- ENDR
-
- ; typedef struct ShadowSyncAtom ShadowSyncAtom
- SampleTableAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'stbl'
- sampleDescription ds SampleDescriptionAtom
- timeToSampleNum ds TimeToSampleNumAtom
- sampleToChunk ds SampleToChunkAtom
- syncSample ds SyncSampleAtom
- sampleSize ds SampleSizeAtom
- chunkOffset ds ChunkOffsetAtom
- shadowSync ds ShadowSyncAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct SampleTableAtom SampleTableAtom
- PublicHandlerInfo RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- componentType ds.l 1
- componentSubType ds.l 1
- componentManufacturer ds.l 1
- componentFlags ds.l 1
- componentFlagsMask ds.l 1
- componentName ds.b 1
- sizeof EQU *
- ENDR
-
- ; typedef struct PublicHandlerInfo PublicHandlerInfo
- HandlerAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'hdlr'
- hInfo ds PublicHandlerInfo
- sizeof EQU *
- ENDR
-
- ; typedef struct HandlerAtom HandlerAtom
- ; a data reference is a private structure
- ; typedef long DataRefAtom
- DataInfoAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'dinf'
- dataRef ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct DataInfoAtom DataInfoAtom
- RgnAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- rgnSize ds.w 1
- rgnBBox ds Rect
- data ds.b 1
- sizeof EQU *
- ENDR
-
- ; typedef struct RgnAtom RgnAtom
- MatteCompressedAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- matteImageDescription ds ImageDescription
- matteData ds.b 1
- sizeof EQU *
- ENDR
-
- ; typedef struct MatteCompressedAtom MatteCompressedAtom
- MatteAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- aCompressedMatte ds MatteCompressedAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct MatteAtom MatteAtom
- ClippingAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- aRgnClip ds RgnAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct ClippingAtom ClippingAtom
- ;**********************
- ;* Media Info Example Structures
- ;**********************
- VideoMediaInfoHeader RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- graphicsMode ds.w 1 ; for QD - transfer mode
- opColorRed ds.w 1 ; opcolor for transfer mode
- opColorGreen ds.w 1
- opColorBlue ds.w 1
- sizeof EQU *
- ENDR
-
- ; typedef struct VideoMediaInfoHeader VideoMediaInfoHeader
- VideoMediaInfoHeaderAtom RECORD 0
- size ds.l 1 ; size of Media info
- atomType ds.l 1 ; = 'vmhd'
- vmiHeader ds VideoMediaInfoHeader
- sizeof EQU *
- ENDR
-
- ; typedef struct VideoMediaInfoHeaderAtom VideoMediaInfoHeaderAtom
- VideoMediaInfo RECORD 0
- size ds.l 1 ; size of Media info
- atomType ds.l 1 ; = 'minf'
- header ds VideoMediaInfoHeaderAtom
- dataHandler ds HandlerAtom
- dataInfo ds DataInfoAtom
- sampleTable ds SampleTableAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct VideoMediaInfo VideoMediaInfo
- SoundMediaInfoHeader RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- balance ds.w 1
- rsrvd ds.w 1
- sizeof EQU *
- ENDR
-
- ; typedef struct SoundMediaInfoHeader SoundMediaInfoHeader
- SoundMediaInfoHeaderAtom RECORD 0
- size ds.l 1 ; size of Media info
- atomType ds.l 1 ; = 'vmhd'
- smiHeader ds SoundMediaInfoHeader
- sizeof EQU *
- ENDR
-
- ; typedef struct SoundMediaInfoHeaderAtom SoundMediaInfoHeaderAtom
- SoundMediaInfo RECORD 0
- size ds.l 1 ; size of Media info
- atomType ds.l 1 ; = 'minf'
- header ds SoundMediaInfoHeaderAtom
- dataHandler ds HandlerAtom
- dataReference ds.l 1
- sampleTable ds SampleTableAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct SoundMediaInfo SoundMediaInfo
- ; whatever data the media handler needs goes after the atomType
- MediaInfo RECORD 0
- size ds.l 1
- atomType ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct MediaInfo MediaInfo
- ;**********************
- ;* Media Directory Structures
- ;**********************
- MediaHeader RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- creationTime ds.l 1 ; seconds since Jan 1904 when directory was created
- modificationTime ds.l 1 ; seconds since Jan 1904 when directory was appended
- timeScale ds.l 1 ; start time for Media (Media time)
- duration ds.l 1 ; length of Media (Media time)
- language ds.w 1
- quality ds.w 1
- sizeof EQU *
- ENDR
-
- ; typedef struct MediaHeader MediaHeader
- MediaHeaderAtom RECORD 0
- size ds.l 1
- atomType ds.l 1
- header ds MediaHeader
- sizeof EQU *
- ENDR
-
- ; typedef struct MediaHeaderAtom MediaHeaderAtom
- MediaDirectory RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'mdia'
- mediaHeader ds MediaHeaderAtom ; standard Media information
- mediaHandler ds HandlerAtom
- mediaInfo ds MediaInfo
- sizeof EQU *
- ENDR
-
- ; typedef struct MediaDirectory MediaDirectory
- ;**********************
- ;* Track Structures
- ;**********************
-
- TrackEnable EQU 1 << 0
- TrackInMovie EQU 1 << 1
- TrackInPreview EQU 1 << 2
- TrackInPoster EQU 1 << 3
-
- TrackHeader RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- creationTime ds.l 1 ; seconds since Jan 1904 when directory was created
- modificationTime ds.l 1 ; seconds since Jan 1904 when directory was appended
- trackID ds.l 1
- reserved1 ds.l 1
- duration ds.l 1 ; length of track (track time)
- reserved2 ds.l 1
- reserved3 ds.l 1
- layer ds.w 1
- alternateGroup ds.w 1
- volume ds.w 1
- reserved4 ds.w 1
- matrix ds MatrixRecord
- trackWidth ds.l 1
- trackHeight ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct TrackHeader TrackHeader
- TrackHeaderAtom RECORD 0
- size ds.l 1 ; size of track header
- atomType ds.l 1 ; = 'tkhd'
- header ds TrackHeader
- sizeof EQU *
- ENDR
-
- ; typedef struct TrackHeaderAtom TrackHeaderAtom
- EditListType RECORD 0
- trackDuration ds.l 1
- mediaTime ds.l 1
- mediaRate ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct EditListType EditListType
- EditListAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = elst
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- numEntries ds.l 1
- editListTable ds EditListType
- sizeof EQU *
- ENDR
-
- ; typedef struct EditListAtom EditListAtom
- EditsAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = edts
- editList ds EditListAtom
- sizeof EQU *
- ENDR
-
- ; typedef struct EditsAtom EditsAtom
- TrackLoadSettings RECORD 0
- preloadStartTime ds.l 1
- preloadDuration ds.l 1
- preloadFlags ds.l 1
- defaultHints ds.l 1
- sizeof EQU *
- ENDR
-
- ; typedef struct TrackLoadSettings TrackLoadSettings
- TrackLoadSettingsAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = load
- settings ds TrackLoadSettings
- sizeof EQU *
- ENDR
-
- ; typedef struct TrackLoadSettingsAtom TrackLoadSettingsAtom
- TrackDirectory RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'trak'
- trackHeader ds TrackHeaderAtom ; standard track information
- trackClip ds ClippingAtom
- edits ds EditsAtom
- media ds MediaDirectory
- userData ds UserDataAtom ; space for extending with new data types
- sizeof EQU *
- ENDR
-
- ; typedef struct TrackDirectory TrackDirectory
- ;***************************************
- ;*
- ;* MovieDirectory -
- ;* The MovieDirectory is the top level structure which
- ;* holds the TrackInstance describing where the
- ;* TrackDirectories are.
- ;*
- ;***************************************
- MovieHeader RECORD 0
- flags ds.l 1 ; 1 byte of version / 3 bytes of flags
- creationTime ds.l 1 ; seconds since Jan 1904 when directory was created
- modificationTime ds.l 1 ; seconds since Jan 1904 when directory was appended
- timeScale ds.l 1 ; Time specifications
- duration ds.l 1
- preferredRate ds.l 1 ; rate at which to play this movie
- preferredVolume ds.w 1 ; volume to play movie at
- reserved1 ds.w 1
- preferredLong1 ds.l 1
- preferredLong2 ds.l 1
- matrix ds MatrixRecord
- previewTime ds.l 1 ; time in track the proxy begins (track time)
- previewDuration ds.l 1 ; how long the proxy lasts (track time)
- posterTime ds.l 1 ; time in track the proxy begins (track time)
- selectionTime ds.l 1 ; time in track the proxy begins (track time)
- selectionDuration ds.l 1 ; time in track the proxy begins (track time)
- currentTime ds.l 1 ; time in track the proxy begins (track time)
- nextTrackID ds.l 1 ; next value to use for a TrackID
- sizeof EQU *
- ENDR
-
- ; typedef struct MovieHeader MovieHeader
- MovieHeaderAtom RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'mvhd'
- header ds MovieHeader
- sizeof EQU *
- ENDR
-
- ; typedef struct MovieHeaderAtom MovieHeaderAtom
- MovieDirectory RECORD 0
- size ds.l 1
- atomType ds.l 1 ; = 'moov'
- header ds MovieHeaderAtom
- movieClip ds ClippingAtom
- ; Track Directories
- trackDirectory ds TrackDirectory ; Track directory information
- ; User data for Movie
- userData ds UserDataAtom ; space for user extensions
- sizeof EQU *
- ENDR
-
- ; typedef struct MovieDirectory MovieDirectory
-
- ; some system defined format IDs
- MOVIE_TYPE EQU 'moov'
- TRACK_TYPE EQU 'trak'
- MEDIA_TYPE EQU 'mdia'
- VIDEO_TYPE EQU 'vide'
- SOUND_TYPE EQU 'soun'
-
- ; atom id's
- MovieAID EQU 'moov'
- MovieHeaderAID EQU 'mvhd'
- ClipAID EQU 'clip'
- RgnClipAID EQU 'crgn'
- MatteAID EQU 'matt'
- MatteCompAID EQU 'kmat'
- TrackAID EQU 'trak'
- UserDataAID EQU 'udta'
- TrackHeaderAID EQU 'tkhd'
- EditsAID EQU 'edts'
- EditListAID EQU 'elst'
- MediaAID EQU 'mdia'
- MediaHeaderAID EQU 'mdhd'
- MediaInfoAID EQU 'minf'
- VideoMediaInfoHeaderAID EQU 'vmhd'
- SoundMediaInfoHeaderAID EQU 'smhd'
- GenericMediaInfoHeaderAID EQU 'gmhd'
- GenericMediaInfoAID EQU 'gmin'
- DataInfoAID EQU 'dinf'
- DataRefAID EQU 'dref'
- SampleTableAID EQU 'stbl'
- STSampleDescAID EQU 'stsd'
- STTimeToSampAID EQU 'stts'
- STSyncSampleAID EQU 'stss'
- STSampleToChunkAID EQU 'stsc'
- STShadowSyncAID EQU 'stsh'
- HandlerAID EQU 'hdlr'
- STSampleSizeAID EQU 'stsz'
- STChunkOffsetAID EQU 'stco'
- DataRefContainerAID EQU 'drfc'
- TrackReferenceAID EQU 'tref'
- ColorTableAID EQU 'ctab'
- LoadSettingsAID EQU 'load'
- CodeCollectionAID EQU 'code'
- InputMapAID EQU 'imap'
-
- ENDIF ; __MOVIESFORMAT__
-